﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            {
                lx();
                Console.ReadKey();
            }
            static void zfx()
            {
                //            用户输入正方形边长，用* 打印出实心正方形。

                //如：用户输入5，则输出如下图形。 
                string[,] a = new string[5, 5];
                for (int i = 0; i < a.GetLength(0); i++)
                {
                    for (int j = 0; j < a.GetLength(1); j++)
                    {
                        Console.Write("*");
                    }
                    Console.WriteLine();
                }
                //for (int i = 0; i < a; i++)
                //{
                //    for (int j = 0; j < a; j++)
                //    {
                //        Console.Write("*");
                //    }
                //    Console.WriteLine();
                //}
                Console.ReadKey();
            }
            static void cfb()//99*fb 
            {
                //for (int i = 1; i <= 9; i++)
                //{
                //    for (int j =1 ; j <= i; j++)
                //    {
                //        Console.Write(i+"*"+j+"="+i*j+"\t");
                //    }
                //    Console.WriteLine();
                //}
                string[,] a = new string[9, 9];
                for (int i = 0; i < a.GetLength(0); i++)
                {
                    for (int j = 0; j <= i; j++)
                    {
                        a[i, j] = ((i + 1) + "*" + (j + 1) + "=" + (i + 1) * (j + 1) + "\t");

                    }

                }
                for (int i = 0; i < a.GetLength(0); i++)
                {
                    for (int j = 0; j < a.GetLength(1); j++)
                    {
                        Console.Write(a[i, j]);
                    }
                    Console.WriteLine();
                }
                Console.ReadKey();
            }
            static void kzfx()
            {
                //            用户输入正方形边长，用* 打印出空心正方形。

                //如：用户输入5，则输出如下图形。
                //*****
                //*   *
                //*   *
                //*   *
                //*****
                int[,] a = new int[5, 5];

                for (int i = 0; i < a.GetLength(0); i++)
                {
                    for (int j = 0; j < a.GetLength(1); j++)
                    {
                        if (i == 1 && a[i, j] == i || a[i, j] == j && j == 1)
                        {
                            Console.Write(" *");
                        }
                        else if (i >= 4 || j >= 4 || i <= 0 || j <= 0)
                        {
                            Console.Write(" *");
                        }
                        else
                        {
                            Console.Write("  ");
                        }


                    }
                    Console.WriteLine();
                }

                Console.ReadKey();


            }
            static void lx()
            {
                //4、打印菱形
                /* *
                  ***
                 *****
                  ***
                   */
                string[,] a = new string[5, 5];
                for (int i = 0; i < 5; i++)
                {
                    for (int j = 0; j < 5; j++)
                    {
                        if (j >= 2 - i && j <= 2 + i && i <= 2)
                        {
                            a[i, j] = "*";
                        }
                        else if (i > 2 && j >= 2 - (4 - i) && j <= 2 + (4 - i))
                        {
                            a[i, j] = "*";
                        }
                        else
                        {
                            a[i, j] = " ";
                        }
                    }

                }
                for (int i = 0; i < 5; i++)
                {
                    for (int j = 0; j < 5; j++)
                    {
                        Console.Write(a[i, j]);
                    }
                    Console.WriteLine();
                }


            }
            static void thsjx()
            {
                //            打印杨辉三角形（要求打印10行），如下所示：（使用二维数组）
                //1
                //1    1
                //1    2    1
                //1    3    3   1
                //1    4    6   4    1
                //1    5    10  10   5   1
                int[][] a = new int[10][];
                for (int i = 0; i < a.GetLength(0); i++)
                {
                    a[i] = new int[i + 1];
                }
                for (int i = 0; i < a.GetLength(0); i++)
                {
                    for (int j = 0; j <= i; j++)
                    {
                        if (i == 0 || j == 0)
                        {
                            a[i][j] = 1;
                        }
                        else if (i == 1 && j == 1 || i == j)
                        {
                            a[i][j] = 1;
                        }
                        else
                        {
                            a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
                        }
                    }
                }
                for (int i = 0; i < a.GetLength(0); i++)
                {
                    foreach (int item in a[i])
                    {
                        Console.Write(item + "  ");
                    }
                    Console.WriteLine();
                }
                Console.ReadKey();
            }
            //在 Main 方法中创建一个字符串类型的数组，并存入 5 个值，然后将数组中下标是偶数的元素输出。
            static void xb()
            {
                string[] a = new string[] { "0", "1", "a", "3", "b" };

                for (int i = 0; i < a.Length; i++)
                {
                    if (i % 2 == 0)
                    {
                        Console.WriteLine("下标是偶数的有{0}", a[i]);
                    }

                }



            }
            //如果一个数组保存元素是有序的（从大到小），向这个数组中插入一个数，使得插入后的数组元素仍然保持有序。
            static void px()
            {
                int[] a = new int[] { 10, 9, 8, 7, 6, 5, 4, 3, 2 };
                Console.WriteLine("原数组");
                foreach (int item in a)
                {
                    Console.Write(item + " ");
                }
                int[] c = new int[10];
                Console.WriteLine();
                Console.WriteLine("插入一个数");
                int b = Convert.ToInt32(Console.ReadLine());
                for (int i = 0; i < a.Length; i++)
                {
                    c[i] = a[i];
                }
                c[9] = b;
                Array.Sort(c);
                Array.Reverse(c);
                Console.WriteLine("排序后");
                foreach (int item in c)
                {
                    Console.Write(item + " ");
                }

            }
            //        一、一维
            //int[] numbers = new int[] { 1, 2, 3, 4, 5, 6 }; //不定长
            //        int[] numbers = new int[3] { 1, 2, 3 };//定长
            //        二、多维
            //int[,] numbers = new int[,] { { 1, 2, 3 }, { 1, 2, 3 } }; //不定长
            //        int[,] numbers = new int[2, 2] { { 1, 2 }, { 1, 2 } }; //定长
        }
    }
}